This disclosure relates generally to the field of computer software. More particularly, but not by way of limitation, it relates to a technique for controlling the processing of a software function.
A distributed software system is a software system whose functionality is distributed across a plurality of software components and computer nodes, or a system that is architected in a manner that it is capable of being distributed across a plurality of software components and computer nodes. One of the challenges in dealing with a distributed software system is deciding which software component and/or computer node should process a software function. Another major problem has been a difficulty in extending control functions without having to upgrade the entire system. There are many algorithms and architectures that enable distributed software systems. However, they are usually quite rigid and do not allow the system to adapt to new resource types, resource topologies, and larger scale.